package com.my.jli.Service;

import com.my.jli.entity.MyFile;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Set;

/**
 * @ClassName MyFileService
 * @Description
 * @Author MaYu
 * @Date 2022/3/26 9:31
 * @Version 1.0
 **/
public interface MyFileService {
    List<MyFile> findAll();
    Page<MyFile> findAll(Pageable pageable);

    /**
     * 新增文件
     * @param myFile myFile
     * @return myFile
     */
    MyFile addMyFile(MyFile myFile);

    /**
     * 根据审核状态获取文件
     * @param jurisdiction 审核状态
     * @return 文件信息列表
     */
    List<MyFile> findByJurisdiction(int jurisdiction);

    /**
     * 带分页
     * @param pageable pageable
     * @param jurisdiction 审核状态
     * @return 文件信息列表
     */
    Page<MyFile> findByJurisdiction(int jurisdiction, Pageable pageable);

    /**
     * 带查询、分页
     * @param myFileExample 匹配对象
     * @param pageable pageable
     * @return 文件信息列表
     */
    Page<MyFile> findAll(Example<MyFile> myFileExample, Pageable pageable);

    /**
     * 获取所有文件类型
     * @return 文件类型列表
     */
    Set<String> findAllType();

    /**
     * 通过id查询文件信息
     * @return 文件信息
     */
    MyFile getById(Integer id);

    /**
     * 通过id删除文件信息
     * @param id id
     */
    void deleteById(Integer id);

    /**
     * 更新文件信息
     * @param myFile myFile
     * @return myFile
     */
    MyFile update(MyFile myFile);
}
